home *** CD-ROM | disk | FTP | other *** search
/ ETO Development Tools 4 / ETO Development Tools 4.iso / Tools - Objects / MPW C++ / MPW C++ 3.1 / Interfaces / CIncludes / strstream.h < prev   
Text File  |  1990-09-11  |  2KB  |  86 lines

  1. /*ident    "@(#)ctrans:incl/strstream.h    1.1.3.4" */
  2. /**************************************************************************
  3.                         Copyright (c) 1984 AT&T
  4.                           All Rights Reserved   
  5.  
  6.         THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T
  7.       
  8.         The copyright notice above does not evidence any        
  9.         actual or intended publication of such source code.
  10.  
  11. *****************************************************************************/
  12. #ifndef __STRSTREAM__
  13. #define __STRSTREAM__
  14.  
  15. #include <iostream.h>
  16. class strstreambuf : public streambuf
  17. {
  18. public: 
  19.             strstreambuf() ;
  20.             strstreambuf(int) ;
  21.             strstreambuf(void* (*a)(long), void (*f)(void*)) ;
  22.             strstreambuf(char* b, int size, char* pstart = 0 ) ;
  23.             strstreambuf(unsigned char* b, int size, unsigned char* pstart = 0 ) ;
  24.     void        freeze(int n=1) ;
  25.     char*        str() ;
  26.             ~strstreambuf() ;
  27.  
  28. public: /* virtuals  */
  29.     virtual int    doallocate() ;
  30.     virtual int    overflow(int) ;
  31.     virtual int    underflow() ;
  32.     virtual streambuf*
  33.             setbuf(char*  p, int l) ;
  34.     virtual streampos
  35.             seekoff(streamoff,seek_dir,int) ;
  36.  
  37. private:
  38.     void        init(char*,int,char*) ;
  39.  
  40.     void*        (*afct)(long) ;
  41.     void        (*ffct)(void*) ;
  42.     int        ignore_oflow ;
  43.     int        froozen ;
  44.     int        auto_extend ;
  45.  
  46. public:
  47.     } ;
  48.  
  49. class strstreambase : public virtual ios {
  50. public:
  51.     strstreambuf*    rdbuf() ;
  52. protected:    
  53.             strstreambase(char*, int, char*) ;
  54.             strstreambase() ;
  55.             ~strstreambase() ;
  56. private:
  57.     strstreambuf    buf ; 
  58.     } ;
  59.  
  60. class istrstream : public strstreambase, public istream {
  61. public:
  62.             istrstream(char* str);
  63.             istrstream(char* str, int size ) ;
  64.             ~istrstream() ;
  65.     } ;
  66.  
  67. class ostrstream : public strstreambase, public ostream {
  68. public:
  69.             ostrstream(char* str, int size, int=ios::out) ;
  70.             ostrstream() ;
  71.             ~ostrstream() ;
  72.     char*        str() ;
  73.     int        pcount() ;
  74.     } ;
  75.  
  76.  
  77. class strstream : public strstreambase, public iostream {
  78. public:
  79.             strstream() ;
  80.             strstream(char* str, int size, int mode) ;
  81.             ~strstream() ;
  82.     char*        str() ;
  83.     } ;
  84.  
  85. #endif
  86.